// 发起ajax,获取所有的分类
$.get('/categories',function (response) {
    //console.log(response)
    var html = template('categoryTpl',{data:response})
    $('#category').html( html )
})

//当上传文章封面时,需要使用隐藏域,来记录图片的地址
// 因为modifyForm也需要做封面的上传,所以这里要做事件委托
$('#parentBox').on('change','#feature',function () {
    var fromData = new FormData()    //创建一个空表单
    fromData.append('avatar',this.files[0])
    $.ajax({
        type:'post',
        url:'/upload',
        data:fromData,
        //告诉$.ajax不要解析请求参数
        processData: false,
        //告诉$.ajax不要设置请求参数的类型
        contentType:false,
        success:function (response) {
            //将服务器返回的图片地址,设置到隐藏域
            $('#thumbnail').val(response[0].avatar)
        }
    })
})

//添加文章的表单提交
$("#addForm").on('submit',function () {
    var formData = $(this).serialize()
    //alert(formData)
    //发送请求,添加文章
    $.ajax({
        type:'post',
        url:'/posts',
        data:formData,
        success:function (response) {
            //数据库存储的时间,是零时区时间
            //console.log(response)
            //添加成功,跳转到显示文章列表的界面
            location.href = '/admin/posts.html'
        }
    })
    return false
})

//运行服务器时,使用的是nodemon app.js 这个命令, 那么一旦对任何js进行编辑,都会导致服务器重启
//服务器重启,就会导致会话(session)丢失,就会导致服务器没有这个用户了. 所以添加文章时会失败.
//解决办法:  使用node app.js.  编辑文件,它不会重启服务器,就不会添加文章失败


//如果这个页面带id参数,则代表是修改文章. 如果不带,则代表是添加文章
var id = getUrlParams('id')
//判断当前是编辑还是新增
if (id != -1){
    //有id值,则代表编辑
    //通过这个id值,获取这个文章信息,刷新到页面上
    $.ajax({
        type:'get',
        url:'/posts/'+id,
        success:function (response) {
            //console.log(response)
            //接着获取所有的分类
            $.get('/categories',function (categories) {
                //将这个categories作为一个参数,加到response上面
                response.categories = categories
                console.log( response )
                //一并将数据带到模板上
                var html = template('modifyTpl',response)
                $('#parentBox').html(html)
            })
        }
    })
}

//获取id的参数. 这个操作只适用于本页面,因为它只有一个参
//console.log( location.search.split('=')[1] )

//通用的参数处理
//?id=xx&name=xx&sex=xx
//通过这个函数,可以获取任意的参数值
function getUrlParams(name)   //name是需要获得参数的键
{
    //去掉第0个字符?号,然后再通过&进行拆分
    //返回一个数组["id=xxx", "name=xiaoming"]
    var parmasAry = location.search.substr(1).split('&')
    //console.log( parmasAry )
    //遍历这个数组
    for (let element of parmasAry)
    {
        //每个元素都进行=号的拆分
        //[id,xxx]
        var result = element.split('=')
        //如果第0个元素,就是你要找的键
        if (result[0] == name){
            //那么就把第一个元素,作为值返回
            return result[1]
        }
    }
    //如果上面循环走完,都没找着,则返回-1
    return -1
}

//格式化时间
function formateDate(date) {
    //将数据库中的时区时间,转换为本地时间
    var date2 = new Date(date)
    //如要返回的时间格式是 yyyy-MM-ddThh:mm
    var year = date2.getFullYear()
    var month = addZero(date2.getMonth()+1)
    var day = addZero(date2.getDate())
    var hour = addZero(date2.getHours())
    var minute = addZero(date2.getMinutes())
    var second = addZero(date2.getSeconds())
    return `${year}-${month}-${day}T${hour}:${minute}:${second}`
}

//如果这个数小于10,则补零
// function addZero(num) {
//     return  num<10?'0'+num:num
// }

//箭头函数版
var addZero = num => num<10?'0'+num:num


//提交修改文章的表单
$('#parentBox').on('submit','#modifyForm',function () {
    var formData = $(this).serialize()
    //alert(formData)
    var id = $(this).attr('data-id')
    //发起修改文字的请求
    $.ajax({
        type:'put',
        url:'/posts/'+id,
        data:formData,
        success:function () {
            //修改完成,跳转到文章列表页
            location.href = '/admin/posts.html'
        }
    })
    return false
})